<?php

require dirname(__FILE__) . '/../wog_act_config.php';

/**
 * 计算战斗结束物品奖励
 * @param $df // 所有查出来的怪物，带d_type
 * @param $m_id // 怪物的d_id
 * @param $m_topr // 怪物的m_topr
 * @param $mercenary_topr // 佣兵的掉落概率
 * @param $p_st // VIP等级
 * @param string $return_type 返回类型，默认string
 * @return array
 */
function calcGetItemTopr($df, $m_id, $m_topr, $mercenary_topr, $p_st)
{
    global $wog_array;
    // 怪物可掉落物品列表string
    $temp_m_id = gettype($m_id) == 'string' ? explode(",", $m_id) : $m_id;
    // 掉落概率
    $temp_m_topr = gettype($m_topr) == 'string' ? explode(",", $m_topr) : $m_topr;
    // 总概率
    $temp_get_item = [];
    $top_get = 0;
    $topr_vip = $wog_array['vip_get_item_topr'][$p_st];//掉宝率参数

    for ($i = 0; $i < count($temp_m_topr); $i++) {
        $top_get = $temp_m_topr[$i] > 0 ? $temp_m_topr[$i] : 1;
        if ($mercenary_topr > 1) {
            $top_get = ((($temp_m_topr[$i] * (100 - $mercenary_topr)) / 100) + $temp_m_topr[$i]);
        }
        // 默认掉落最大随机
        $rand_max = 1;

// 基础概率，1/掉落
        $final_topr = $topr_vip + 1 / $top_get;
        echo '<hr>';
        echo ('名称：' . $df[$temp_m_id[$i]]['d_name']) . "(id={$df[$temp_m_id[$i]]['d_id']})" . "({$df[$temp_m_id[$i]]['d_type']})";
        echo '<br>';
        if ((int)$df[$temp_m_id[$i]]['d_type'] < 5) {
            $topr_vip = $wog_array['vip_eq_get_item_topr'][$p_st];
            $final_topr = $topr_vip + 1 / $top_get;
        }
        echo('加成：' . $topr_vip);
        echo '<br>';
        echo('原始掉落概率：');
        echo(($final_topr * 100) . '%');
        echo '<br>';
        if ($topr_vip > 0 && $topr_vip < 1) {
            $rand_max = $top_get * $final_topr;
        } else if ($topr_vip == 1) {
            $rand_max = $top_get;
        }
        echo('继续判定后概率：');
        echo(($final_topr * 100) . '%');
        echo '<br>';
        echo '最大范围：';
        echo '0 - ' . $rand_max . '(' . $top_get . ')';

        $ran_top_get = rand(1, $top_get);
        echo '<br>';
        echo '随机结果：';
        echo $ran_top_get;
        echo '<br>';
        if ($ran_top_get <= $rand_max && $df[$temp_m_id[$i]]) {
            array_push($temp_get_item, $df[$temp_m_id[$i]]);
        }
        echo '是否掉落：';
        echo $ran_top_get <= $rand_max && $df[$temp_m_id[$i]] ? 'true' : 'false';
        echo '<hr>';
    }
    echo '<br>';
    echo '<hr>';
    echo '最终掉落：';
    echo json_encode($temp_get_item);
    echo '<hr>';
    return $temp_get_item;
}
